//#include <iostream>
//using namespace std;
//const int N = 100010;
//int n, m, ans;
//int a[N], b[N];
//int ret1, ret2;
//int main()
//{
//    cin >> n >> m;
//    for (int i = 0; i < n; i++) cin >> a[i];
//    for (int i = 0; i < m; i++) cin >> b[i];
//    for (int i = 0, j = 0; i < n || j < m; i++, j++)
//    {
//        cout << a[i] << " " << b[j] << endl;
//        if(a[i] == b[j])
//        {
//            cout << a[i] << " " << b[j] << endl;
//        }
//        if (a[i] != b[j])
//        {
//            ret1 += a[i++];
//            ret2 += b[j++];
//            while (ret1 != ret2)
//            {
//                if (ret1 > ret2)
//                {
//                    ret2 += b[j++];
//                    ans++;
//                }
//                else if (ret1 < ret2)
//                {
//                    ret1 += a[i++];
//                    ans++;
//                }
//            }
//        }
//    }
//    cout << ans << endl;
//}

//#include <iostream>
//#include <string>
//using namespace std;
//string s;
//int ans;
//int main()
//{
//    for (int i = 1; i <= 2023; i++) s += to_string(i);
//    for (int i = 0, j = 0; i < s.size(); i++)
//    {
//        if (s[i] == '2')
//        {
//            string tmp;
//            j = i;
//            while (j < s.size())
//            {
//                if (tmp == "" && s[j] == '2') tmp += s[j++];
//                else if (tmp == "2" && s[j] == '0') tmp += s[j++];
//                else if (tmp == "20" && s[j] == '2') tmp += s[j++];
//                else if (tmp == "202" && s[j] == '3')
//                {
//                    ans++;
//                    tmp += s[j];
//                }
//            }
//        }
//        i = j;
//    }
//    cout << ans;
//    return 0;
//}


#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef pair<int, int> PII;
int n;
vector<PII> v;
vector<PII> ans;
int main()
{
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        int l, r;
        cin >> l >> r;
        v.push_back({ l, r });
    }
    sort(v.begin(), v.end());
    int be, en;
    for (int i = 0; i < v.size(); i++)
    {
        if (i == 0)
        {
            be = v[i].first;
            en = v[i].second;
        }
        else
        {
            if (v[i].first <= en) en = max(en, v[i].second);
            else
            {
                ans.push_back({ be, en });
                be = v[i].first;
                en = v[i].second;
            }
        }
    }
    ans.push_back({ be, en });
    // for(int i = 0; i < ans.size(); i++)
    // {
    //     int l = ans[i].first, r = ans[i].second;
    //     cout << l << " " << r << endl;
    // }
    cout << ans.size() << endl;
    return 0;
}